Please read all of this document thoroughly before trying to run Yet Another NewsWatcher for the first time. You should also have read and be familiar with the user guide for the original NewsWatcher program by John Norstad.
What is Yet Another NewsWatcher?
Yet Another NewsWatcher is a Usenet newsreader application for Macintosh. Its features include automatic viewing of downloaded images, binary posting, flexible article filtering (kill files) and sorting, reference-based threading, and comprehensive multiple character set support for reading and posting in non-English language and non-Latin alphabet newsgroups. Please see “Program Information” below for who's to blame for what.
What's in this distribution?
• NewsWatcher: a PowerPC version of Yet Another NewsWatcher
• a number of files that document the various features that Yet Another NewsWatcher adds to original NewsWatcher. It does not contain the original NewsWatcher user document, which you should obtain and read carefully.
If you are running Yet Another NewsWatcher after having previously used the original NewsWatcher, when the program starts you will receive an error message about preferences being not found, damaged, or invalid. This is normal. These are the preferences that Yet Another NewsWatcher adds for the extra features it offers.
Problems?
Yet Another NewsWatcher has been proven to be a stable program that runs well and reliably on most peoples' Macs. If you encounter problems, here are some things to try/look out for:
• Make sure you have your location and time zone specified correctly in the Date & Time control panels. Setting your location is important for the correct operation of the various date handling routines.
• Set a reasonable maximum number of articles to fetch, such as 600-1200, rather than the standard default value of 15000.
• Make sure you're using the most recent version of Open Transport , and have installed all the appropriate system software updates.
• Try running with the minimum number of system extensions to see if this eliminated the problem.
• As a last resort, trash your old prefs and/or filter files, and see if that makes any difference.
Program Information
Yet Another NewsWatcher is free. It may not be sold for profit or included with software or other products which are sold for profit without the permission of both Northwestern University and Brian Clark. If you redistribute the program, you must not modify the program or documentation in any way without the permission of Brian Clark, and you must distribute the complete Yet Another NewsWatcher archive containing the application, tables and plugins, scripts, and documentation.
Yet Another NewsWatcher was developed by Brian Clark based on the original NewsWatcher application by John Norstad. If you encounter problems, PLEASE read the NewsWatcher manual and the Yet Another NewsWatcher documents to see if the matter is discussed there. It is also an excellent idea to see what problems or solutions are being discussed in the newsgroups comp.sys.mac.apps and comp.sys.mac.comm.
There is no home ftp site or web page for Yet Another NewsWatcher. The anonymous FTP site for the original NewsWatcher program, the user document, and the CodeWarrior C source code is:
<ftp://ftp.nwu.edu/pub/newswatcher/>
Yet Another NewsWatcher requires at least 1700 kB of free RAM, a PowerPC processor, and System 8.5 or later. Several components that come with System 8.5, such as QuickTime 3.0 are also required. The Mac must be connected to the Internet, and Open Transport must be properly installed and configured.
Yet Another NewsWatcher has been awarded the “Good Net-Keeping Seal of Approval”. For details on the Seal, see:
<http://www.xs4all.nl/%7Ejs/gnksa/>
Yet Another NewsWatcher is available as a PowerPC application. It runs in native Open Transport mode.
For dialup use, Yet Another NewsWatcher works with the various SLIP and PPP programs, and with ARA together with an appropriately configured AppleTalk/IP gateway. It is strictly an online newsreader, and it does not support any other kind of dialup connection. The program requires an active full TCP/IP connection to the Internet. It does not support offline newsreading, and it does not support older kinds of dialup connections designed primarily for simple terminal emulation. If you need an offline newsreader or a newsreader which works with older kinds of dialup connections, you must use some other program.
Yet Another NewsWatcher was written by Brian Clark:
<mailto:baclark@kagi.com>
The original NewsWatcher was written by John Norstad of Northwestern University:
<mailto:j-norstad@nwu.edu>
If you have a comment, question, or suggestion about Yet Another NewsWatcher, please read the user documents for the program before writing to any of the authors. Most questions are answered in John Norstad's user document for the original NewsWatcher. In particular, see the “Getting Started” chapter for basic instructions on how to use the program, and see Appendix F for a list of “Frequently Asked Questions” (FAQs) and their answers. If you don’t have a copy of the user document, you can get it via anonymous FTP.
Additional information is contained in the various user documents that accompany Yet Another NewsWatcher.
Before writing or posting to ask for help or report a problem, make certain you have the most recent version of the program.
For more information on the various versions of NewsWatcher, and on other newsreaders for the Macintosh, visit the Mac Orchard web site at:
<http://www.macorchard.com/>
The program is based on the original version 1.0.2 written by Steve Falkenburg of Apple Computer. Thanks also to the following people who helped test development and beta versions, helped with design discussions, and/or helped with code contributions: Apple DTS, Bob Boonstra, Ross Brown, Steven Carmody, Adam Engst, Ron Flax, Simon Fraser, Aaron Giles, Haydn Huntley, Steve Klingsporn, Jean-Pierre Kuypers, Robert Lentz, Peter Lewis, Jim Matthews, John Moreno, Andrea Norstad, Jeremy Norstad, Lasse Hillerøe Petersen, André Pirard, Quinn, Howard Rafal, Pete Resnick, Craig Richmond, Larry Rosenstein, Leonard Rosenthol, Jeroen Scheerder, Michael Shappe, Eric Slosser, Stephan Somogyi, Neal Trautman, John Werner, Dean Yu, Mahboud Zabetian, and the nice people on comp.sys.mac.comm.
The following people have, in one way or another, wittingly or not, helped in the development of Yet Another NewsWatcher. Many thanks to: Jeff Beeghly, Terje Bless, Dan Crevier, Jim Luther, Marco Piovanelli, Andreas Prilop, Willem Nijenhuis, Drew D. Saur, Henry Spencer, Bill Stewart-Cole, Mizutori Tetsuya, Dave Winer, and Xiaolin Zhao.
And, of course, special thanks to John Norstad for all his hard work on original NewsWatcher. Yet Another NewsWatcher would not be possible without the complete and sturdy foundation offered by original NewsWatcher. Thank you, John, we all appreciate what you've done for us.
The regular expression code is a slightly modified version of code by Henry Spencer. The plugin interface for the extended character set conversion was designed and written by Dan Crevier. Text editing code using the WASTE text engine is based on code by Marco Piovanelli and Dan Crevier. “Natural Order” string sorting is based on code by Stuart Cheshire. The X-Face decoding code was originally written by James Ashton.
Special thanks to Steve Dorner, both for his advice and assistance, and for his “Eudora” mail program, which has served as a consistent source of inspiration for NewsWatcher in particular and as a standard of excellence for Macintosh Internet software in general.
NORTHWESTERN UNIVERSITY AND BRIAN CLARK PROVIDE YET ANOTHER NEWSWATCHER AS IS, WITHOUT ANY WARRANTY OR PROMISE OF TECHNICAL SUPPORT. NORTHWESTERN UNIVERSITY AND BRIAN CLARK DISCLAIM ANY LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF YET ANOTHER NEWSWATCHER, INCLUDING, WITHOUT LIMITATION, INCIDENTAL, CONSEQUENTIAL, INDIRECT OR SPECIAL DAMAGES OF ANY KIND, EVEN IF NORTHWESTERN UNIVERSITY OR BRIAN CLARK ARE AWARE OF THE POSSIBILITY OF SUCH DAMAGES. NORTHWESTERN UNIVERSITY AND BRIAN CLARK MAKE NO WARRANTIES, EXPRESS OR IMPLIED, WITH RESPECT TO THE PROGRAM, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
There are substantial differences between Yet Another NewsWatcher, original NewsWatcher, and other NewsWatcher versions. Some of these differences are touched upon here. Following sections in this user guide act as an overview of program features and operation, and provide additional information about the unique features of Yet Another NewsWatcher. Yet Another NewsWatcher provides extensive balloon help for the various items in menus, dialogs, and windows. Often the hints provided by balloon help are sufficient to understand how a program feature works or is turned on or off.
1) Numerous cosmetic changes have been made. The program is Appearance-savvy and makes extensive use of Appearance Manager features. Most windows have (optionally hidden icon buttons at the top that are used to perform various tasks. Many are simple pushbuttons that are used to display a dialog and change some settings for the window. Others are toggle buttons that are used to indicate a setting. The filter groups icon buttons shown in group and subject windows are both. For these buttons, clicking on the button shows the dialog while option-clicking toggles the button on or off. This is explained in the balloon help for the buttons.
2) Extracting binaries has been substantially improved. The program detects and decodes BinHex, uuencoded, and Base64 encoded files. The built-in decoder also handles AppleSingle and AppleDouble formats and MacBinary I, II, and III. The decoder has been carefully designed to deal with the often badly encoded files that abound in usenet binary groups, and to do the best possible job of decoding them, even when a single post contains multiple parts that have been encoded multiple times in various formats.
A number of new options relating to extracting binaries can be found in the “Extracting Binaries” portion of the Preferences dialog. If “Keep No Attachment Found” is checked, Yet Another NewsWatcher will not delete any binaries that it starts to download and then determines that they are bad in some way (incomplete, or not a recognizable binary format, or ...) This will also cause incomplete downloads (terminated due to a network error or user cancel) to be kept too.
3) Added support for automatically viewing downloaded JPEG, GIF and PICT files. If “Show Images” in “Extracting Binaries” portion of the preferences dialog is checked, decoded images will automatically be displayed in a window within Yet Another NewsWatcher. Icon buttons allow the image to be resized to fit the window (whose position and size can be locked) and the image file to be optionally deleted when the window is closed or the next image is displayed. The third icon button can be used to display information about the image. If the “Add Post Info Text to Downloaded Files” option is checked, in the “Extracting Binaries” portion of the preferences dialog, informational text including the original post's Subject, From, and Message-ID headers is included, as well as any descriptive text that preceded the binary attachment. Clicking on the info icon button displays a small text window containing this information. A fourth icon button pauses the automatic display of newly decoded images. Note this image display does not occur when Yet Another NewsWatcher is in the background. Any images which are decoded while the program is in the background will not be displayed until the program is again brought to the front. The preferences pane allows the minimum duration a new image is shown to be set. If this value is set to 0, each new image comes up with the pause button pressed, and the next image will not be shown until the current image is unpaused. Note that the value that is set here is actually how often the program looks for a new image file decoded by the built-in decoder.
Image files can also be opened manually via the Open command. These are shown in separate windows which are distinct from the window used for automatically viewing downloaded images.
Pressing command-1, -2, -3, or -4 is a shortcut for clicking on the trash, resize, info, or pause buttons. If main keyboard shortcuts are enabled, pressing 't', 'r', , 'i', or 'p' are also valid shortcuts.
4) A new item has been added to the Special menu to disable or re-enable the truncation of messages that seem to be binary posts. Sometimes the logic used to detect binary posts fails, causing normal text messages to be truncated. This menu option lets you (presumably temporarily) disable truncation so that the message can be read.
5) A new “Compact Article Cache” command in the Special menu can be used to remove old items from this cache. A large cache can cause some out of memory errors, since the number of articles actually added to a subject window for processing and actual display is the number fetched PLUS the number in the cache. The latter number can be very large, causing apparently inexplicable memory problems. Note that, if you have the option to backup your prefs file enabled, you can “undo” the cache flushing by using the backup prefs file the next time Yet Another NewsWatcher is launched (the article cache is stored in the prefs file).
6) It's possible to download articles or binaries to disk in the background while still reading the news. Downloading may be paused and resumed at a later time, with the list to pending downloads saved when you quit the program and restored when you startup again. See Part Eight: Downloading” for a discussion of this feature.
7) The program has full support for binary posting. See “Part Nine: Binary Posting” for more information.
8) The ability to filter articles has been added. See “Part Three: Filtering” for details.
9) Added the “Get Newsgroup FAQ” command to the Special menu that may be used to get the FAQ for many newsgroups via the Ohio State web server using your specified http helper application. If you hold down the option key, the faq.org server is used instead. Also, the “Get Newsgroup Descriptions” command was added to get the short descriptive text that is sometimes available from the news server to describe the purpose of newsgroups. Note that these commands do not always yield the information that you seek. The FAQ web servers don’t have a FAQ for every newsgroup in existence, and many news servers also don’t have descriptions for all the newsgroups they carry.
10) Added support for using a Eudora Nicknames file. There's now a new panel in the preferences dialog. From there you can specify a Eudora Nicknames file that will be automatically converted and saved to a new file, called Yet Another NewsWatcher Nicknames, stored in the “YA-NewsWatcher Settings” folder, when the program starts up. A new “Insert Recipient” hierarchical menu in the Edit menu then lets you insert an email address stored in the nicknames file. Note that, at present, when you select a nickname from the “Insert Recipient” menu, the actual email address and not the nickname is inserted. This is unlike Eudora, which inserts the nickname and only later changes it to an email address. Yet Another NewsWatcher never tries to interpret an entry in an email address field as a nickname and expand it into an email address.
11) Added a “Newsgroup Settings” menu item. This leads to a three level dialog that allows certain preferences (subject window font, article font, sort order, headers to display, default message window personality, font, and encodings etc.) to be set on a newsgroup by newsgroup basis. These settings override those in the preferences dialog.
12) It's now possible to specify other than Mac->Latin1 and Latin1->Mac character transliterations when sending messages or viewing posts. When sending a non-binary message, Yet Another NewsWatcher now includes the appropriate MIME headers indicating the character set in use. For more information of this feature, see “Part Seven: Character Sets.” It’s also possible to change the font or charset for an article window after it has been opened, using the “Article Format” command in the View menu.
13) Added the Export command to the File menu. This writes the contents of a group or subject list window to a tab-delimited text file. The file creator and default save-to folder are the same as for saving article files. Message windows can also be exported to text files that will mirror how the message will look when its posted or emailed.
14) It is now possible to change news servers (actually preference files) without quitting and restarting. This can be done by double-clicking a prefs file from the Finder, dragging a prefs file onto the program icon, opening a prefs file from within Yet Another NewsWatcher using the usual File menu Open command, or using the “Switch Servers” hierarchical menu in the file menu. In each case an alert is displayed asking if you really wish to change prefs files.
If a new prefs file is opened in any of these ways, all the currently open windows in Yet Another NewsWatcher are closed, the new prefs file is opened, and the usual program startup operations are performed.
15) Added the ability to hide newsgroups in the full group list window that don't match a search string. The search text editing field is made active or inactive by pressing the tab key. When active the usual hilight frame is drawn around it, and keystrokes and the Select All/Deselect All menu commands apply to it. When inactive keystrokes and the Select All/Deselect All menu commands are directed at the group list.
There’s a new preference item (in the Miscellaneous pane) to determine whether the new “show” panel in subject windows and the full group list window is shown by default. For an individual window it can be shown or hidden using the “Show Details/Hide Details” command in the View menu. There’s also a new preference item (in the Miscellaneous pane) to determine if unread hidden articles are treated as read or not when a subject window is closed and articles are hidden. Any hidden articles that are already marked as read will be so treated.
16) Added the ability to hide articles in subject windows that don't match a search string. The string can match the Subject: header of articles, or the From: header if that information is available (use XOVER is enabled or Show Authors is enabled). The search text editing field is made active or inactive by pressing the tab key. When active the usual hilight frame is drawn around it, and keystrokes and the Select All/Deselect All menu commands apply to it. When inactive keystrokes and the Select All/Deselect All menu commands are directed at the article list.
17) Text windows now use the WASTE text engine, which supports long documents, styled text, and Undo/Redo.
18) Message windows now feature intelligent wrapping and rewrapping of text. As you enter text into a message window, it is automatically formatted to show how it will look when it is sent, including the wrapping of long lines of text. This means that you now know exactly where each line break will occur.
As part of this change, quoted text is no longer automatically wrapped. If you edit some quoted text so that the lines become very long, they will display that way in the message window and be posted that way unless you explicitly wrap them using the Wrap command. However, if the “wrap on send” option is set by default for a message window (as it almost always should be), then when a reply message window is opened all the quoted text is automatically wrapped when the window is created.
The Wrap and Unwrap commands are now much smarter about quoted text. If you unwrap quoted text the quote characters at the start of the second and following lines are automatically removed. If you rewrap such text, the quote characters are reinserted.
Most newsreaders don't do a very good job of wrapping messages that contain quoted text. The result can be text that loses the quote characters or which has widely varying line lengths. Yet Another NewsWatcher's intelligent wrapping feature eliminates many of these problems. An added command, Rewrap, will unwrap and rewrap selected lines of text in one step, and can be used to undo some of the bad formatting created by other newsreaders.
Part Two: Files and Folders
Yet Another NewsWatcher adds some new file types and folders to original NewsWatcher. This section introduces these new items, and explains how the program looks for the files it needs.
The Files
The screenshot above shows six of the files used by Yet Another NewsWatcher.
Those in the top row are also used by original NewsWatcher. The leftmost is the application itself. To its right is the preferences file. This file stores all the settings entered in the program preferences dialog, plus the full list of newsgroups, plus various other settings (saved dialog positions, etc.) The preferences file, because it is used to save the name of the news server you connect to, and the list of all the newsgroups carried by that server, is unique to a given news server. If you wish to use Yet Another NewsWatcher to connect to more than one news server, you need to have more than one preference file (one per news server). This is discussed in more detail in the original NewsWatcher user guide. The rightmost file is a user group file, used to store information on the newsgroups to which you subscribe. Because of the way that news servers work, this too is specific to an individual news server.
The second row shows the new files used only by Yet Another NewsWatcher. The leftmost is the filters or settings file. It is always named “YA-NewsWatcher Filters.” It contains both the filters you define to label (hilight or kill) posts, and the newsgroup-specific settings you have created. It can be shared among multiple news server configurations through the use of aliases (see below). The center file is created when you have enabled the option to convert a Eudora Nicknames file for use with Yet Another NewsWatcher. It holds the converted nicknames. The rightmost file is an optional charset transliteration file. See “Part Seven: Character Sets” for more information on these files.
Folders and File Locations
John Norstad designed original NewsWatcher to be a flexible program that would work well in both single and multi-user environments using one or more news servers. This is achieved by allowing multiple preference files to be used to customize the program for an individual user or news server. This flexibility can sometimes cause confusion, and moving essential files away from where they should be can cause problems. This section briefly explains how Yet Another NewsWatcher looks for the files it needs and expects to find.
One special folder is the one that holds the Yet Another NewsWatcher program. That folder should use the following arrangement:
In addition to the program, it contains two special folders. One is the “YA-NewsWatcher Help” folder that contains program help files. Any text files placed in this folder will be added to the program's Help menu. The other is the “YA-NewsWatcher Translators” folder. This folder is used to hold the character set translation plugin and table files used to adapt the program to reading and posting on non-English newsgroups.
The other files are used to hold settings for particular newsgroups and various preferences. They're typically stored in a folder of their own. The following configuration makes it easy to switch between several news servers while sharing newsgroup settings and filters.
The above example shows the setup for using two news servers.
The prefs files contain a large part of the information specific to a given news server. They're the documents that you double-click or open to start the program or to change servers. Yet Another NewsWatcher expects to find certain files or folders in the same location as the active prefs file. The folder (or alias to a folder) named “YA-NewsWatcher Servers” is used to make it easy to switch servers. Any prefs files (or aliases to prefs files) found in this folder will be added to the program's “Switch Servers” hierarchical menu in the File menu. The easiest way to manage the prefs files for multiple servers is as show above. Create a folder named “YA-NewsWatcher Servers” and place in it aliases of the prefs files for the various news servers you wish to use. Then make an alias of this folder, and place a copy of the alias in the same folder as each prefs file (and ensure it has the name “YA-NewsWatcher Servers.” Then when connected to each news server you be able to quick switch connection to all the others.
The folder named “YA-NewsWatcher Settings” is the folder used to contain the filters file (containing both filters and newsgroup settings) and your converted Eudora nickname file. Again, it's often desirable to use one filters file with all your news servers. The solution is to place the filters file in it's own folder somewhere handy, and place an alias to the file in each server's “YA-NewsWatcher Settings” folder, as shown above.
The folder named “YA-NewsWatcher Stationery” holds the message stationery pad files used to define the personalities that can be used with that server. Often these files are server-specific, so the above installation shows individual stationery files for each server and no cross-server sharing.
Finally each server has its own user group files that are used to store the information for the newsgroups to which you subscribe. Because of how news servers keep track of articles, these files most often can NOT be shared among servers. So again each news server has it's own files. In the configuration above they're placed in the special “YA-NewsWatcher Startup” folder. And file placed in this folder is automatically opened by the program when it starts up or changes to that server. By placing your user group lists in the startup folder, you make sure they're automatically opened when you switch to that server.
Finally, if when using Yet Another NewsWatcher you experience trouble that might be related to preference or filters files, remember the discussion above on how the program tries to find the files it needs, and search your disk for unexpected and unwanted multiple preference or filters files.
Part Three: Filtering
A major improvement offered by Yet Another NewsWatcher over original NewsWatcher is the ability to apply filters to articles listed in subject windows. With the appropriate filters, you can label posts on subjects or by authors you find especially interesting or instructive, remove unwanted annoyance posts, and generally make your usenet reading faster and more efficient.
How Filters Work
Yet Another NewsWatcher classifies filters into four categories:
1) The global filter, with a filter group name “.”. Any filters in this group are applied first. The global filter group matches every newsgroup. This is the best place to create common-interest filters (all posts by yourself or the almost as notable John Norstad) or common-disinterest filters (to remove all MAKE.MONEY.FAST posts for example).
2) Regional hierarchical filters, with filter group names of the form “name1.name2.”. These filter groups match any newsgroup whose name starts with the filter group name, excluding the final period. For example, consider a regional filter group named “comp.sys.”. This filter group will match the newsgroups comp.sys, comp.sys.mac, comp.sys.mac.comm, and comp.sys.next. These filters are applied in order of length. For example, suppose there are filters defined for the filter groups “comp.sys.” and “comp.sys.mac.”. When filtering the newsgroup comp.sys.mac.comm, first the “comp.sys.” filters would be applied, then the “comp.sys.mac.” filters.
3) Multi-group filters, with filter group names that are regular expressions. The use of regular expressions means that such filters can match group names in various parts of the usenet hierarchy. Otherwise these are similar to regional filters, and are applied at the same time as regional filters.
4) Local filters, with names identical to a newsgroup name. These apply only to the newsgroup named, and are applied last, so that any filtering they apply can supersede that performed by the earlier, more general purpose global or regional filters.
All three kinds of filters are stored in a single Yet Another NewsWatcher settings file, and define a set of filters that can be applied to articles. The settings file is stored in a special folder named “YA-NewsWatcher Settings”, which must be located in the same folder as the active prefs file.
There’s one final wrinkle on user group window specific filters. If you have a user group file named “My Sub”, a filter group named:
.My Sub
(that’s a period followed by the name of the user group file) will be treated as a global filter for that user group window only. This filter will be applied after the regular global filter “.” but before any regional or local filters. This means that you can use just one filter file and still have filters that apply only to one user group window or another. This makes it easier to share filter files when you use more than one news server and therefore have more than one prefs file and user group file.
Preferences
There are two sections of the Preferences dialog that deals with filters.
The first is “Filter Options.” It is used to set basic filter functionality.
“Disable Filtering” turns the filtering option off by default. When group windows are opened, their initial filtering enabled/disabled setting is taken from this value. It’s possible to toggle the filtering enabled/disabled value for an open group filter by option-clicking on the Filter Groups icon button. The icon is drawn selected when filtering is enabled. When subject windows are opened from a group window, their initial filtering enabled/disabled state is inherited from the group window. Again, filtering for an open subject window can be toggled between enabled or disabled by option-clicking the Filter Groups icon button, which is drawn selected when filtering is enabled. To show the articles in an open subject window without filtering when the window was opened with filtering enabled, or to show with filtering the articles if the window was opened with filtering disabled, first option click on the Filter Groups icon button to toggle filtering on or off, then choose the Refilter command from the News menu.
“Expand Labeled Threads” is pretty much self explanatory. If a thread contains an article that has been labeled, the thread will be automatically expanded when displayed in a subject window.
Filters can be set to expire a number of days after they have been created. Expired filters are removed from the filters file. If “Show Expiration Alert” is checked, the Status dialog will show at program startup if any filters have been expired.
“Keep Expired Filters” is intended to let you save and possibly reenable an expired filter. If this option is checked, expired filters are moved to a filter group that has the same names as the original group with a leading bullet (•) character added.
Yet Another NewsWatcher filters support the concept of assigning an importance weighting factor, or score, to filters and articles. As filtering progresses, each article’s score is increased by the score value assigned to every filter that matches the article. For example, suppose that John Norstad posts an article titled “New NewsWatcher Version.” You have defined three filters. One filter labels all articles whose From: header includes the word Norstad. The score for this filter is 500, because you are very interested in what John has to say. A second filter labels all articles whose Subject: line includes the word NewsWatcher. The score for this filter is 100. A third filter labels all articles whose Subject: line contains the word money. The score for this is set to -500, because you hate to see MAKE.MONEY.FAST posts all the time.
So, when filtering articles, Yet Another NewsWatcher tries all three filters. The first two match John’s post, assigning a score of 500 + 100 = 600 to the article. A MAKE.MONEY.FAST post gets a score of -500. If you set the “Score to Kill” entry in the Filter Options dialog to 0, the MAKE.MONEY.FAST post will be killed (removed from the subject window) because its score is less than the value you set. You can also set a score below which articles will be marked with the (junk) label (see below).
The remainder of the items in the dialog are used to customize the labels that are applied to filtered articles. There are a total of 12 possible labels. They are displayed in order of importance from top to bottom. Threads with articles assigned labels from the top of the list will sort to positions higher in subject windows that threads containing lower rank labels, assuming that the sort by label option has been enabled. The top 9 labels can be dragged to establish a different order of importance. The color of these labels can be edited by selecting the item in the list and clicking on the “Edit Color” button. Just like Finder labels, a label can have both a color and a name associated with it. The name can be edited by selecting the label in the list and clicking on the “Edit Text” button.
The bottom three labels are special. They can’t be edited or reordered. (Unlabeled) is used to mark an article with a filter without otherwise labeling it. This would usually be used when the “Articles Not Matched Are Deleted” option for a filter group. (killed) is used to remove annoyance posts from subject windows. (junk) is used to label articles that are probably annoyance posts but which you might want to look it.
The “Make Default” button is used to make one label the default for newly created filters. The default label is shown with a checkmark beside it in the labels list. It does not need to be the topmost label.
A second section affects how the headers needed by filters are obtained from the news server.
It's unfortunate but true that not all news servers let you fetch all the usual headers. Often only the most common headers are available. In some cases the other headers may be available, but getting them from the server takes much too long. Perhaps you're sharing a filters file among several news servers, and each server has it's own quirks about header availability and speediness. That's where the “Filter Headers” preferences come in. This lets you disable fetching specific headers for the given news server without having to disable any filters that use the header. The filters will just be skipped, without any length delay to fetch the header or with for the news server to refuse to return the header information.
Creating and Editing Filters
New filter-related commands have been added to the News menu. These commands are used to create new filters, and to view and edit existing filters.
“Filter Groups…” brings up a two-paned moveable modal dialog showing the filters groups in the upper list, and the filters defined for the selected filter group in the lower list.
The three buttons to the right of the Filter Groups list are used to edit the list. Clicking the “Rename” button lets you change the name of a filter group, effectively assigning all the filters defined for that group to a different newsgroup. The “Delete” button is used to remove a filter group and all the filters it contains. The “New” button lets you create a new, initially empty filter group.
The five buttons to the right of the Filters list are used to edit the list. Clicking on the “Edit” button, or double-clicking a filter entry, causes an article filter dialog for the selected filter to be displayed (see below). “Delete” removes the selected filters from the list, while “New” allows a new filter to be created. “Copy” and “Paste” do what you’d expect, allowing you to copy and paste filters from one filter group to another.
There are two checkboxes in the Group Filter dialog that affect how filters for the selected filter group work. If “Label Unmatched Articles as (killed)” is selected, only articles matching the various keep/label filters will be displayed. All other articles are killed. Use this option when you only want to see a few specific articles within a newsgroup. If the “Enable Filters” checkbox is not checked, then all the filters for the selected filter group will be inactivated.
The Filter menu command “New Filter…” lets you add a new filter.
When editing a filter, via clicking on the filter in the “Filter Groups” dialog box, or via a “New Filter…” menu commands; you are presented with the “Article Filter.” The dialog is intended to be read from top to bottom left to right as an English sentence.
The topmost type-in popup menu is used to define the filter group for the filter. The initial value corresponds to the current newsgroup when a new filter is being created. Below this is a popup menu used to select which header line will be used for filtering. Most headers support filtering by matching text in the header line. For example, you can choose “From” as the header and then in the text box below the popup menu enter the text “John Norstad” to filter posts by the author of the original NewsWatcher program. Just above the textbox is a third popup menu that is used to select what kind of text matching will be performed. Most often the “Contains the String” item is the best choice, but you can also create filters that look for specific words, or phrases that start or end with a specific string. By checking the “Ignore case” checkbox, string matching will treat upper and lower case characters as the same. Much more powerful (but also slower and more difficult to use) matching can be done by selecting the “Contains the Reg. Exp.” item to perform regular expression matching. The syntax for regular expressions understood by Yet Another NewsWatcher is described in the file “Regular Expressions.”
Yet Another NewsWatcher does its best to insert text from all the available headers into the textboxes shown for all the possible settings of the header popup menu. If the filter dialog is opened when an article window is topmost, all the headers from that article will be placed in the appropriate textboxes. If the dialog is opened from a subject window with a selected article, text from the available headers (those displayed in the subject window) will be placed in the textboxes. If no article is selected, the textboxes will all be empty.
When creating a new filter, either via the Filters menu or by clicking on a button in a subject window or in the Filter Groups dialog, the default header being filtered is the Subject header. If you hold the option key down when selecting from the Filters menu or clicking on a button, the default header is instead the From header.
Note that filters for the Date and Line headers do not use string matching. For dates you instead choose to filter articles more than a given number of days old, or less than a given number of days old. Yet Another NewsWatcher is smart enough to know that if you enter a number of 2 for “less than,” and 4 for “more than,” that you want to filter articles that are less than 2 OR more than 4 days old; while having the numbers reversed means you want to filter articles that are less than 4 AND more than two days old. Filtering on lines works in a similar manner. With dates there is an option to filter or not filter articles with missing or invalid date headers. For lines there is an option to filter or not filter articles with missing or zero line counts.
The label popup menu is used to set what kind of a filter is being defined. The uppermost menu items are used to mark posts with a specific label color and name, similar to Finder labels. The colors, labels, and order of these items can be edited in the “Filter Options” portion of the Preferences dialog. The bottom two entries are special. (Unlabeled) is used to mark a post as of interest without assigning a label color or name. The final entry, (Killed), is usually used to remove unwanted annoyance posts like MAKE.MONEY.FAST. The order of the items in the label popup menu defines their priority, with the topmost being the most important. When sorting by label, threads containing articles labeled with the topmost label will be displayed at the top of subject windows, followed by any threads labeled with the second from the top label, etc.
A filter can be set to expire a specified number of days after it is created. This will be useful when a filter is used to select articles of passing interest. Without this option the filters file would continue to grow as new filters are added, and the time it takes to filter subject windows would also continue to increase. Setting the expiration time to 0 makes the filter perpetual.
Individual filters can also be enabled or disabled, using the “Enable Filter” checkbox. Disabled filters are displayed in italics in the Filter Groups dialog.
There are two other filter commands in the News menu. “Kill this Subject” creates a new, local filter for an article selected in the subject window or shown in an article window. The filter will kill all posts having the same subject as the article. Similarly, “Kill this Author” creates a new local filter to kill posts by the article’s author. To instead create a new global filter, hold down the option key when selecting the command. These two commands are shortcuts that bypass the Edit Filter dialog, which is still the best way to create a new filter because of the flexibility it offers in setting the filter weighting factor, expiration time, etc.
Sundry Notes
Filter priority. The rank of a label (its order in the list of labels) is used to determine whether a later filter will override a previous filter's labeling of an article. The rules are:
1) A kill or junk label always overrides any previous label. A kill or junk label may itself be overridden by any subsequent filter. Thus it is possible to unkill an article with a later filter.
2) Non-kill and non-junklabels will only override a previous label of equal or lower rank.
Killing articles by score. After all filters have been applied to the articles in a subject window, a final pass through the posts is made to mark as killed all articles with scores less than the value designated in the Filter Options dialog. This permits somewhat more selective killing than would be the case if articles were killed as soon as their score dipped below the kill threshold. For example, you might want to kill all posts with “money” in the subject lines unless you're reading alt.make.money.fast. You would then set up a global filter to score at -500 all articles with money in he subject line, and a local filter in alt.make.money.fast to score these articles at +500. Then the posts will be killed everywhere except in alt.make.money.fast (assuming the default kill threshold score of 0). Also, when filtering using scores, the score is applied for every filter match, even if the filter is a (killed) or (unlabeled) one. Junking by score works the same way.
A filter icon has been added to message windows. It is used to automatically create a filter to label the message and any replies it generates. When clicked, a dialog is displayed allowing the label, score, and expiration for the filter to be set. One new (local) filter is created for each newsgroup to which the message is posted. Each filter is based on the subject header and the subject of your message (truncated to 31 characters).
Live Filtering
There's a final kind of filtering that can be done to subject windows and also the full group list window. For both kinds of window you can choose to temporarily show or hide the list items that match a search string. An example is shown for the full group list illustrated below:
In this case the full group list normally contains nearly 45 thousand newsgroups. That can make it very hard to find the newsgroups you're interested. If “Show Details” is enabled for the full group window, the panel at the top of the window contains a text box where a search string can be entered, a checkbox to set whether searching should be case-sensitive or not, and a popup menu used to set the string matching options. You can enter a string and display only those newsgroups that match the string. An empty string is used to show all the available groups.
The same feature can be used with subject window to show or hide posts that match or don't match the search criteria you specify.
Part Four: Subject Windows, and Sorting and Threading
Introduction
In original NewsWatcher, article threads in subject windows are only sorted by the article number of the first article in a thread. In Yet Another NewsWatcher, threads can be sorted in a number of ways: article number, subject, author, date, label, line count, and priority.
Sorting by subject does just that, threads are sorted by the canonical (ignoring Re:, etc.) subject of the thread. The other sorting methods are equally self-explanatory. They are available when the matching header has been selected for downloading when the newsgroup was opened. For example, to sort by author you need to have “Show Authors” checked in the Subject Windows Option part of the preferences dialog.
When sorting by author, etc. the contents of threads are examined. A thread containing posts by Clark and Xanthus would be placed above a thread with posts by Norstad and Spindler when sorting by author using the normal order, since the first posts would be sorted according to “Clark” and the second by “Norstad.” In this case choosing “Sort in Reverse Order” would not reverse the order of the threads, since the first thread would sort by “Xanthus” and the second by “Spindler.” When “Sort High Priority to Top” is enabled, articles in subject windows are first sorted by priority color, and then by the regular sorting criterion (author, subject, etc.) Note that the reverse sort option does not affect sorting by priority. Priority can be determined by one of two means: label order, or score. This is set by a checkbox in the “Subject Windows” preferences pane.
“Normal” sorting order is defined as follows:
• When sorting by author, threads are sorted according to the normal alphabetical ordering by the last name of the authors. If two or more threads have the same author, they are then sorted in alphabetical ordering by the canonical subject line.
• When sorting by subject, threads are sorted according to the normal alphabetical ordering by the canonical subject line.
When sorting by Lines, threads with long articles are sorted to the top.
• When sorting by dates, threads with more recent articles are sorted to the top.
• When sorting by score, threads with high scoring articles are sorted to the top.
Sorting is accomplished by selecting one of the options using the sorting menu items in the View menu, or by clicking on the appropriate column label in the Subject window (when column labels are shown). As in the FInder, the column by which sorting is determined is drawn as a pressed button. Shift clicking the currently pressed label button switches sorting to by article number.
Note that column labels in subject windows can be enabled or disabled on the fly using the “Show Labels/Hide Labels” item in the View menu.
Changing the sort order when a Subject window is frontmost will resort the articles in that Subject window. The order of sorting can be reversed by selecting that option in the View menu, or by clicking on the stacked blocks icon in the leftmost column label (when labels are shown).
Preferences
Any new Subject windows use the default sort method chosen in the “Subject Window” portion of the preferences dialog. This is also where the choice is made regarding which article headers to download and show when creating a new subject window.
There are also two options that control how threads are constructed for binary posts, and how articles are ordered within a thread.
Normally replies or followups to a binary post a placed in a separate thread. When the subject window is not sorted by subject, this means that the reply thread may be far from the original posts. If the “Keep Replies with Binaries” option is checked, the followups are instead placed at the end of the binary post thread.
By default the order of articles within a non-binary thread is the order in which the articles were received at your news server. In general, this is a pretty random order, and it’s common for replies to show up before the original post, etc. If “Thread via References” is checked, an attempt will be made to order the articles more logically according to the References headers for the posts. Yet Another NewsWatcher uses a fairly simple scheme for doing such ordering that is reasonably fast and effective. Note that because an additional set of headers must be downloaded from the news server, the time to fetch the article information is increased. Also, the contents of a thread (what articles belong to a given thread) is still determined by the Subject line. Given that many newsreaders don’t properly supply a complete, correct References header, and that many replies lack any references, the method used to create and order threads seems to be a good compromise.
The icon buttons at the top of subject windows (displayed when “Show Icon Buttons” is enabled) are used to perform various tasks. As in other windows, some are simple pushbuttons that are used to display a dialog and change some settings for the window. Others are toggle buttons that in addition to displaying a dialog also have an on or off state. An example of this is the filters button. When in the on state (drawn as pressed), it means that filtering will occur when the window is rebuilt (due to selecting a new sort order, etc.)
Part Five: Messages and Personalities
Introduction
Yet Another NewsWatcher lets you use different personalities when posting or emailing messages. A personality is a collection of settings that define some of the contents of the message, such as your email address, your signature and organization, etc.
A typical message window is shown below:
If the “Show Details” option is on, the panel below the icon buttons contains two popup menus. The one on the right is used to set the Mail-Copies-To header that tells others whether or not you'd prefer an email copy of any posted response to your message. The “Omit” setting does just this: no header is added to your posts, and readers can choose for themselves how to respond. “Nobody” means you're telling people that you do not want an email response to your post if the person also posts a response. “Poster” means that you'd appreciate an email copy of any posted reply.
Some additional settings can be shown and edited by clicking on the message settings icon button:
This gives you a chance to change all these settings for this particular message. The items in the top two panels affect the contents of the message when it is sent. The formatting options in the bottom panel only affect how it is shown to you in the message window.
The personality popup menu is used to switch between different personalities. There's always a personality named default. The settings for the default personality are usually taken from the values in the preferences dialog. However it's possible to create a default personality file that overrides these settings. More on this below.
A number of different settings can be changed by switching personalities. The “full name,” “email address,” and “anti-UCE address” are all affected by the personality. So are your signature, as well as the Organization, extra mail, and extra news headers. To create a personality, you simply open a new message window and enter the desired text in the various edit fields in the message window and message settings dialog. The save the message window to the special “YA-NewsWatcher Stationery” folder in the same folder as the current prefs file. Use the popup menu in the save file dialog to check the stationery option. This creates a new personality with the same name as the file you saved, and the personality is automatically added to all the personality popup menus. If the file was named “Default” this will create a new default personality that overrides the settings in the preferences dialog.
The newsgroup setting feature of Yet Another NewsWatcher can be used to set the initial personality that new message windows will use. This makes it easy to set your return email address and signature, etc. based on what newsgroup you're reading.
Preferences
Many of the options for message windows are set in the “Message Options” pane of the preferences dialog:
This is where you enter the name of the SMTP (mail) server you'll use when you mail messages from the program. You also enter your name and email address here. You can also choose to enter an “Anti-UCE” email address. If this field is filled in, this email address is used whenever you post a message to usenet. If you don't wish to receive an email response to your post, and don't wish to receive junk email from scoundrels who cull email addresses from usenet posts to use for bulk emailings, you can use this feature. Check with your ISP for what address to use. Many ISP's provide a "dead letter box" email address for just this purpose. By using a valid email address you don't increase internet congestion by causing bounced email messages. Any mail messages you send will always use the upper email address.
An unofficial rule is that signatures should be limited to 4 lines of no more than 80 characters each. The program will warn you if you try to send a message with a too-long signature. It won't warn you more than once per session about any given signature, and you won't be warned more than 5 times per session. After you have been warned 5 times, you can permanently disable furute warnings by unchecking the “Warn About Too Long Signatures” checkbox. This checkbox is disabled until this minimum number of warnings have been shown. Note that if you choose to post with a long signature, that signature will always be shown in your message window. You can't choose to hide a long signature.
Part Six: Newsgroup Settings
Introduction
Newsgroups settings are a powerful feature of Yet Another NewsWatcher. They let you tailor the behavior of the program on a newsgroup-by-newsgroup basis. In effect, you can have custom preference settings for any newsgroup.
Clicking on the newsgroup settings icon button in a group window displays the “Newsgroup Settings” dialog. This dialog is used to create new settings and edit or delete old ones.
Naming of newsgroup settings is similar to that of regional and local filters. A settings named “comp.sys.mac.app” is a local setting that will apply custom settings just to that one newsgroup. A settings named “comp.” is a regional setting that can be applied to all the newsgroups in the comp. hierarchy. Note that there's no special global settings named “.” as there is for filters, because the purpose is served by the regular preference settings.
Searching for an applicable newsgroup setting when opening a subject window, etc. is done in the opposite order that filters are searched for. AS an example, suppose a subject window for the newsgroup comp.sys.mac.apps is being opened. The program first looks to see if there's a newsgroup setting that exactly matches the group name comp.sys.mac.apps. If there is, that setting is used. Otherwise the program checks to see if there's a regional setting named “comp.sys.mac.” and if so it is used. If not, a check for “comp.sys.” is done, and so forth. Also unlike filters, newsgroup settings are not applied in succession. The first matching newsgroup setting is used, and no others. If there's no match, the preference settings are used.
Editing a newsgroup setting is done in a three pane dialog that's similar to the preferences dialog. Each pane displays the settings for a certain kind of window. The “Subject Options” panel is used to set the options for subject windows. This can be handy for speeding up newsreading and reducing subject window clutter. For example, for binary newsgroups you can choose to show line counts and sort by author. For discussion newsgroups you can omit showing line counts and sort by subject.
A second pane is used to set the options for article windows. This can be very useful if you subscribe to newsgroups that have different language or character set requirements.
The third pane sets the options for message windows. As for article windows, it may be useful to set the charset used for new messages based on the newsgroup if you post to both western European language and other language newsgroups. You can also set which personality is used by default, a very useful feature, especially if you have multiple email accounts or ISPs used to read the news. You can use a standard email address for the general posts you make, and use the local address when posting to the ISP's local newsgroups.
Part Seven: Character Sets
Introduction
Yet Another NewsWatcher adds support for character transliterations other than Mac <-> Latin1.
Not everyone in the world uses the same alphabet, and not all computers have the same character sets mapped to the 256 different possible 8-bit character codes. The use of standardized character sets and transliterations helps to work around some of the problems this causes.
The earliest versions of NewsWatcher performed no character transliteration at all. That was fine, as long as both the writer of the message and the reader of the article were using Macs. When this was not true, the results would be funny looking text. For example, the sender on a Mac would use the Apple character (shift-option-K), and the receiver on an IBM PC might see some graphic character. Starting with one of then 2.0b releases, John Norstad included support for the standard and by far most commonly used character set mappings. When sending a message, the Mac to Latin1 (also known as ISO-8859-1) transliteration would be used. This maps the extended Mac characters to the closest matching standard Latin1 characters, so that when a Mac poster uses the é character it is translated to the appropriate matching character code in the Latin1 character set. Similarly, when receiving messages, NewsWatcher would assume that the article was written using the Latin1 character set, and would transliterate characters back to the Mac characters set using an inverse transliteration.
This works fine most of the time. It doesn’t work well when the article being received wasn’t in the Latin1 character set, which may happen in non-English language newsgroups.
So, like the excellent email program Eudora, and many other internet applications, Yet Another NewsWatcher adds support for additional transliteration tables. This makes it easy for third parties to customize the program for non-English languages (such as Cyrillic) without having to modify and recompile the program code, and without losing the ability to effectively post to and read English language newsgroups. Yet Another NewsWatcher also supports translator plugins, for languages (like Japanese) that require more complicated processing than just a simple transliteration of characters.
Translator files
When Yet Another NewsWatcher is first launched, it finds (and creates if necessary) a folder named “YA-NewsWatcher Tables” in the same folder as the active preferences folder. It scans this folder for files that have the necessary ‘taBL’ resources, loads the transliteration tables and adds the names of the tables to some transliteration menus. It also loads in the same manner any translation plugins. These appear as popup menus in a number of dialogs throughout the program, and allow the user to specify what kind of character transliteration will be performed. For those who want to create new transliteration tables, the format of these files is described the end of this section. Information on writing a plugin translator for Yet Another NewsWatcher is also available.
Preferences
There is a new Preferences dialog panel that lets the user set the default character transliteration that will be performed when displaying articles, when posting a message, and when sending a message. By default these are set to the fixed values used by older versions of Yet Another NewsWatcher (Mac to Latin1 when sending; Latin1 to Mac when receiving).
The default transliteration done on articles and messages can also be set for individual newsgroups by using the “Newsgroup Settings” dialog. The transliteration can also be changed when sending a message by clicking on the “Message Settings” button in message windows. Selecting “Article Format” in the View menu for an article window lets you change the font and character set mapping for the open article window. Finally, when sending a message, Yet Another NewsWatcher now also inserts proper MIME headers, indicating what character set was used.
One other common transliteration that may be useful is a Mac to US ASCII conversion. This attempts to replace non-ASCII characters in the Mac character set with the nearest matching ASCII character. For example, all the forms of accented e characters (é, è, ê, ë) are replaced with a plain e. This can be useful for emailing a message to a user whose email system doesn’t handle 8-bit characters. Included with the Yet Another NewsWatcher distribution is a sample Mac to US ASCII table, located in the “Tables & Plugins” folder. Just place the file “Macintosh -> US ASCII” in the “YA-NewsWatcher Tables” folder and you’ll be able to specify this transliteration when sending messages. Also included are a number of additional tables, thanks to Andreas Prilop, as well as Japanese and Chinese translation plugins thanks to Dan Crevier. Note that if you choose to install lots of tables and plugins, you may need to increase Yet Another NewsWatcher’s memory allocation somewhat. In particular, all three Big5 Chinese plugins require a fair bit of additional RAM. An extra 200 kB for Yet Another NewsWatcher is recommended in this case.
Table File Format
Yet Another NewsWatcher now has a new icon for files of type ‘TABL’ (creator ‘NNTP’, of course) that can be used for transliteration table files. However, any file in the “YA-NewsWatcher Tables” will be scanned for tables, no matter what its creator or type.
The table files are very similar but not identical in format to those used by Eudora. Table resources (type ‘taBL’) are classified into two kinds: those used when sending, and those used when receiving. Those used for sending must have even resource ID numbers; those used for receiving must have odd resource ID numbers. This is the same convention used by Eudora.
The name of the ‘taBL’ resource is shown in Yet Another NewsWatcher’s popup menus, and tables are remembered by resource name, not resource number. So resource ID numbers need only be unique within a given file.
For each ‘taBL’ resource there MUST be a matching ‘STR ‘ resource with the same ID number. The contents of the string should be the (often standardized) name of the character set it is used with. For example, both the Macintosh -> ISO-8859-1 and ISO-8859-1 -> Macintosh tables have ‘STR ‘ resources that contain the string “ISO-8859-1”. When the matching table is used to transliterate a message being sent, this string is used in the MIME charset= header.
I encourage people creating additional table files to put just one pair of tables in each file. This will make it easier for users to select which tables they do or do not want to use without having lots of duplicate or unwanted tables causing confusion. Because of their design plugins only support one pair of translations per file.
Writing a Translator Plugin
For information on writing a translator plugin for Yet Another NewsWatcher, please go to:
<ftp://ftp.boingo.com//dan/YANWPluginSDK.hqx>
Thank you!
Special thanks to Jean-Pierre Kuypers for all his help in testing the new character set transliteration features, and to Andreas Prilop and Dan Crevier for their help in making additional translators available, as well as Tetsuya Mizutori and Xiaolin Zhao for their assistance in getting the Japanese and Chinese plugins to work properly with Yet Another NewsWatcher.
Part Eight: Downloading
Introduction
Many people like to take advantage of the binary posts that are found in certain newsgroups. But downloading such posts can take a long time, and can easily hog the limited transfer rates available to people using dialup connections. A way is needed to make it as easy as possible to download such posts while still permitting normal newsreading in other newsgroups. It's also necessary to be considerate to others (by not making excessive connections to the news server, which may also limit the number of simultaneous connections an individual can make) and to yourself (because you may need to check mail, do ftp file transfers, or web browse while downloading files).
Yet Another NewsWatcher addresses these issues with its download feature. The user can choose to use a second connection to the news server that will be opened and closed at need and used to sequentially download the binary (or text) posts that are selected for downloading.
Preferences
The download feature can be enabled or disabled by a checkbox in the “News Server” pane of the Preferences dialog:
When “Use Additional Connection for Queued Downloads” is checked, the program will download the items you have selected in the background, permitting normal newsreading to go on at the same time. If the box is not checked, items will be downloaded as soon as they're chosen, and additional downloads or normal reading will not be possible until the download has been completed.
Operation
The status window now has two panes in it. The top pane shows the progress of normal reading operations or non-background downloading:
The bottom panel is used to show what download operation is taking place, and to pause or resume downloading:
The information shown when a download is taking place includes the subject line from the original post, the current and total number of lines for the post (when line count information is available, and for part posts the line count is the total for all the parts), the download rate, and the number of downloads waiting to be performed after the current one is completed.
Note that the status window has two special positions where it can be anchored: to the top of the main screen (the one with the menubar) and to the bottom of the main screen. When dragged to either of these positions, other program windows will be located and zoomed so that they don't overlap the status window. If the status window is located elsewhere program windows do not consider its location when being located and zoomed. Anchored to the bottom of the main screen is a good choice for the status window location if a non-floating status window is being used, because the window will then often still be visible from other programs. This makes it easy to check on Yet Another NewsWatcher's status when you're in some other program.
When background downloading is enabled, and you select some articles for downloading, they are immediately added to a special “Downloads List” window. This window looks like a simplified subject window. It shows the count (the number of parts), the subject, and the lines (total for all parts) for each item to be downloaded. The leftmost column is used for a marker character that indicates the status of each item. Unmarked items are queued for downloading. Items with a checkmark were successfully downloaded. Items in red and marked with an X were not successfully downloaded. See below on how to retry such failed downloads.
The “Downloads List” window is similar to the full group list window in that it may be hidden or shown, and it's position and hidden/shown state are remembered between newsreading sessions.
It is not necessary that downloading occur immediately. If downloading is enabled but paused (by clicking on the Pause button in the status window, which is then renamed Resume), articles to be downloaded are added to the downloads list but no downloading occurs. Downloading will start as soon as the Resume button is pressed. It's therefore possible to browse through newsgroups selecting articles to be downloaded without actually tying up the machine by transferring megabytes of posts from the news server. Downloading can be resumed when its convenient. Note that any in-progress download is cancelled when downloading is paused. If downloading is later resumed and downloading the item is tried again, the full article and all its parts will have to be redownloaded.
When the program is quit or servers are changed, any successful downloads are removed from the list. All others are saved to the prefs files, and restored when that prefs file is opened again. Therefore articles do not have to be downloaded in the same session in which they're picked.
In the News menu, the menu items that are normally named “Mark Read” and “Mark Unread” are renamed “Mark Done” and “Mark Pending” for the downloads window. If you select a number of items in the list and choose the “Mark Done” command, any selected pending items will be marked as done with an error value of cancelled. The busy item and any items already marked done will not be affected. Similarly, if the “Mark Pending” command is chosen, any selected done items will be marked as pending and the error value reset, and other items will be left untouched.
It's possible to see what error occurred for any item marked done, and to change the folder where any retry will be saved. By double clicking on a single, done list item, the Download Info dialog is displayed:
This dialog displays some information about the article (the newsgroup and subject), as well as a description of any error that occurred during downloading. It shows the folder where the article was to have been saved. If the download was unsuccessful and you wish to change the folder for a later redownload attempt, you can do this by clicking on the “Set…” button. There's also a checkbox to immediately reset the status to pending, so that a new download attempt can being immediately.
Part Nine: Binary Posting
Introduction
Yet Another NewsWatcher adds a new feature to NewsWatcher: transparent support for binary posting.
A file icon button is added to message windows, to the right of the “send to self” button. Clicking on it elicits the “Attached File Settings” dialog, used to choose a single file to attach to your post, set the encoding method, and determine how the binary file will be segmented into multiple parts. Clicking on the Send button causes the selected file to be (optionally) uuencoded, split into several sections, and sent. The keyboard shortcut for clicking on the file icon is Command-4 (just as Command-1,2,3 are shortcuts for the first three icon buttons). If the option key is held down when clicking on Send, etc. a dialog appears allowing just a range of sections to be sent. This is useful when reposting, as only the bad sections need to be re-sent (assuming that the encoding kind and section size are not changed).
Preferences
Related to this, there are four new preference items, under “Message Files” (which was formerly named “Saving Messages” in John Norstad's version). “News part size in kB” lets you set a default value for the approximate size in kB of each section of the file being posted. “Mail part size in kB” does the same for files being emailed. Values of about 32 to 64 are reasonable. The actual number of bytes in the section will be somewhat greater, since this number does not include the header lines or any of the additional lines required to mark the start and end of segments, the encoding method, etc. Please also note that temporary system memory is used when posting files. The amount of memory required is somewhat greater than the value entered in the two “part size in kB” boxes. Using temporary memory means that you do not have to increase the memory partition of Yet Another NewsWatcher in order to send large files. In fact, since increasing the memory partition reduces the amount of memory available to the system and other applications, it reduces the amount of temporary memory available for sending attached files.
The two other popup menus, labeled “News encoding:” and “Mail encoding:” permit you to specify a default method for how the attached file will be encoded before posting. As noted above, these popup menus also appear in the dialog used to select a file attachment, allowing the default value to be overridden for a particular post. The available options are uuencoding (the standard internet encoding method), binhexing (appropriate for Macintosh files) and none (for plain text files).
Generally uuencoding should be used for binary posts to non-Macintosh binary newsgroups, and for binary email to non-Macintosh users. BinHex encoding may be used to email a Mac file to another Mac-using friend, or to post a Mac file to a Mac-only binary newsgroup. No encoding should be used to post or email long pure-text files.
Note that the wrap checkbox in the Message Options dialog affects how unencoded binary posts are handled. If it's checked, then the file's text will be wrapped to 80 columns. If it's not, the file's text will still be wrapped to 1000 columns (which was chosen because that's the guaranteed lower limit for maximum line lengths for mail servers).
The name of the file, and the part number, will be prepended to whatever subject line you entered in the message window. For example:
Subject: My test post
would become when sent:
Subject: -Jupiter.gif [0/1] My test post
etc. if you were posting a file named Jupiter.gif. The text entered in the body of the message window becomes the descriptive information supplied in part 0 of the binary post.
Please note that binary attachments should only be posted to binary newsgroups. Most newsgroups are intended only for discussion, and binary posts are not welcome in such groups.
Part Ten: Scripting
Yet Another NewsWatcher adds a number of new Apple Events to NewsWatcher. These events allow users to write scripts that get the header or body text for an open article window, or get or set the header or body text or attached file for an open message window, or create and send a new message, etc. There is also an Apple Event that allows a script to determine if Yet Another NewsWatcher is busy performing a long operation.
For the getmessagepart/setmessagepart events, the name of the header should be the name of one of the headers visible in a message window, all in lower case, without the colon at the end, i.e.:
subject
newsgroups
The empty string is used to designate the message body, as in:
tell application "YA-NewsWatcher"
setmessagepart "sample body text" messagePart ""
end tell
Finally, to specify the contents of the “extra mail” and “extra news” headers, use the special names:
extramail
extranews
For the newmessage event, the various sending options have different defaults. byNews defaults to true; bymail defaults to false; and bySelf defaults to the usual preferences setting. To obtain different behavior you should set the various sending options explicitly in your script.
For the setmessageattachment event, the default values for the various encoding methods and sizes are the current values used for the message window. Unless they've previously been set otherwise, this means the values et in the Preferences dialog.
YA-NewsWatcher Suite
getfullmessage: Get the complete text for a message window.
getfullmessage
[windowName string] -- Name of message window (defaults to
topmost message window).
[doWrap boolean] -- Wrap the body and signature text (defaults to false).
Result: string -- The complete text of the message, formatted as for printing.
getmessagepart: Get the body or header text for a message window.
getmessagepart
messagePart string -- The name of the header to return, or the
empty string to return the body text.
[windowName string] -- Name of message window (defaults to
topmost message window).
[doWrap boolean] -- Wrap the text (if it's the body or signature;
defaults to false).
Result: string -- The requested body or header text for a message window.
setmessagemailcopy: Set the Mail Copy option for a message window.